package configs

import (
	"fmt"
	"sync"
)
// Config /主要配置
type Config struct {
	l        sync.Mutex //读写锁，会阻止写，不会阻止读
	env      string
	basePath string
}

var (
	configIns *Config
	o         sync.Once
)

func GetConfig() *Config {
	o.Do(func() {
		configIns = new(Config)
	})
	return configIns
}

// SetEnv /设置env
func (c *Config) SetEnv(s string) {
	c.l.Lock()
	c.env = s
	c.l.Unlock()
}

// GetEnv /获取env
func (c *Config) GetEnv() string {
	return c.env
}

// SetBasePath /设置basePath
func (c *Config) SetBasePath() {
	c.l.Lock()
	c.basePath = fmt.Sprintf("configs/%s/", c.env)
	c.l.Unlock()
	return
}

// GetBasePath /获取basePath
func (c *Config) GetBasePath() string {
	return c.basePath
}
